/* ==== form check ==== */
/*-------------------------------------------------------/
功能：检测字符串指定类型，验证表单
参数：chkType 为检测字符串的类型；strS 为待检测字符串
返回：bool值，true 表示是指定的类型，false 表示不是指定的类型
实例：name="email" ------ Email地址
      "user" ------------ 用户名(长度在4~16之间，包含字符、数字和下划线)
      "password" -------- 密码(长度在6~18之间，包含字符、数字和下划线)
      "Re_password" ----- 确认密码
      "tel" ------------- 电话号码
      "mobile" ---------- 手机号码
      "postcode" -------- 邮政编码
      "ID" -------------- 身份证
      "number" ---------- 数字
      "odd" ------------- 奇数
      "even" ------------ 偶数
      "zh_cn" ----------- 汉字
      "url" ------------- 网址URL
/-------------------------------------------------------*/

; (function($) {
    $.extend({
      chkStrByType: function(strS, chkType) {
        var result;
        switch (chkType) {
          case 'odd': //奇数
              var chkStr = arrRegExp['number'];
              var reg = RegExp(chkStr, 'g');
              var result = reg.test(strS);
              if (true == result) {
                var num = parseInt(strS) % 2;
                if (1 == num) {
                  result = true;
                } else {
                  result = false;
                }
              } else {
                result = false;
              }
              break;

          case 'even': //偶数
              var chkStr = arrRegExp['number'];
              var reg = RegExp(chkStr, 'g');
              var result = reg.test(strS);
              if (true == result) {
                var num = parseInt(strS) % 2;
                if (0 == num) {
                  result = true;
                } else {
                  result = false;
                }
              } else {
                result = false;
              }
              break;

          case 'Re_password': //确认密码
              var chkStr = $("input.form-input[name=password]").val();
              var result;
              if (strS == chkStr) {
                result = true;
              } else {
                result = false;
              }
              break;

          default: //其他类型按正则表达式检测
              var chkStr = arrRegExp[chkType];
              var reg = RegExp(chkStr, 'g');
              var result = reg.test(strS);
              break;
        }
        return result;
      }
    });
}) (jQuery);

/* 正则验证字符串表达式 */
var arrRegExp = {};
arrRegExp['email'] = '\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*';
arrRegExp['tel'] = '^(\\(\\d{3.4}\\)|\\d{3,4}-|\\s)?\\d{7,8}';
arrRegExp['mobile'] = '^1[3|4|5|8]\\d{9}$';
arrRegExp['postcode'] = '^\\d{6}$';
arrRegExp['ID'] = '\\d{17}(\\d|x)$';
arrRegExp['number'] = '^[0-9]*$';
arrRegExp['zh_cn'] = '^[\u4e00-\u9fa5]';
arrRegExp['url'] = '[a-zA-z]+://[^\\s]*';
arrRegExp['user'] = '^[a-zA-Z0-9]\\w{4,15}$';
arrRegExp['password'] = '^\\w{5,17}$';


$(function() {
  $("input.form-input").blur(function() {
      // 获取待检测的字符串与制定类型
      var $ChkStr = $(this).val().replace(/ /g, "");
      var $ChkType = $(this).attr('name');
      // 保存检测后的结果值
      var blnResult = $.chkStrByType($ChkStr, $ChkType);
      // 返回检测后的结果
      /*---/var strTmpShow = "";
      var strTmpType = blnResult ? "Is" : "Not";
      strTmpShow = $ChkStr + strTmpType + $ChkType;
      console.dir(strTmpShow); /---*/
      if (blnResult) {
        $(this).siblings(".icon-form").addClass("icon-right");
      }else {
        $(this).siblings(".icon-form").addClass("icon-wrong");
      }
  });
  $("input.form-input").focus(function() {
      $(this).siblings(".icon-form").removeClass("icon-right icon-wrong");
  })
});



/* ==== dropdown ==== */
/*-------------------------------------------------------/
功能：点击.dropdown-toggle/任意位置弹出/收起下拉菜单
/-------------------------------------------------------*/

$(function() {
  $(document).bind("click",function(e) {
      //id为dropdown-toggle的是打开菜单的按钮            
      if($(e.target).closest(".dropdown-toggle").length == 0){
      //点击id不是dropdown-toggle，则触发
          close();
      }
  })
  $('.dropdown-toggle').click(function() {
    $(this).siblings('.dropdown-toggle-menu').toggle();
  })
});

function close() {
  //close menu...
  $('.dropdown-toggle-menu').css('display','none');
};


/* ==== nav ==== */
/*-------------------------------------------------------/
功能：tabs标签active属性切换
/-------------------------------------------------------*/

$(function() {
  $('.nav li').click(function() {
    $(this).addClass('active').siblings().removeClass('active');
  });
});


/* ==== navbar-toggle ==== */
/*-------------------------------------------------------/
功能：移动端导航栏缩进/展开
/-------------------------------------------------------*/

$(function() {
  $('.navbar-toggle').click(function() {
    $('.navbar-spread').toggleClass('open');
  });
});


/* ==== modal ==== */
/*-------------------------------------------------------/
功能：模态框打开和关闭
参数：Toggle 为data-toggle的取值，取值为'modal'时打开模态框
      Target 为data-target的取值，对应模态框的id
      Dismiss 为data-dismiss的取值，取值为'modal'时关闭模态框
/-------------------------------------------------------*/

$(function() {
  $('button').click(function() {
    var Toggle = $(this).data('toggle'); // 获取按钮的data-toggle值
    var Target = $(this).data('target'); // 获取按钮的data-target值
    var Dismiss = $(this).data('dismiss'); // 获取按钮的data-dismiss值
    // console.log(Toggle);
    // console.log(Target);
    // console.log(Dismiss);
    if (Toggle == 'modal') {
      $(Target).addClass('in').css("display", "block").css("display");
      $('body').addClass('modal-open');
    }
    else if (Dismiss == 'modal') {
      $('.modal').removeClass('in');
      $('body').removeClass('modal-open');
      setTimeout(function() {
          $('.modal').removeAttr("style");
      }, 400);
    }
  });
  $('.modal').bind("click",function(e) {
    if($(e.target).closest(".modal-content").length == 0){
      //点击modal-content之外，则触发
      $(this).removeClass('in');
      $('body').removeClass('modal-open');
      setTimeout(function() {
          $(this).removeAttr("style");
      }, 400);
    }
  });
});


//page



//回到顶部




// 二级页内容选项切换


// 下载列表download效果




// 给新闻列表页的新闻内容设置最大字数，超过字数则显示省略号


// 右侧智能置顶，计算窗口滑动的位置 并让"float"标签置顶


// 当浏览器宽度小于指定值，改变"div"样式
